package registnet.base.courseoffering;

import java.util.List;

import registnet.base.instructor.IInstructor;

/**
 * This class provides default implementations for the <code>ICourseOffering</code> interface.
 */
public class AbstractCourseOffering implements ICourseOffering {
	
	/**
	 * The course code of the course associated with the course offering.
	 */
	protected String courseCode;
	
	/**
	 * The name of the course offering.
	 */
	protected String name;
	
	/**
	 * The academic year the course offering is/was offered.
	 */
	protected int academicYear;
	
	/**
	 * The semester the course offering is/was offered.
	 */
	protected int semester;
	
	/**
	 * The maximum number of student allowed to enlist in the course offering.
	 */
	protected int studentCount;
	
	/**
	 * The schedule(day) for the laboratory class.
	 */
	protected String laboratoryDay;
	
	/**
	 * The schedule(day) for the lecture class.
	 */
	protected String lectureDay;
	
	/**
	 * The schedule(day) for the recitation class.
	 */
	protected String recitationDay;
	
	/**
	 * The schedule(time) for the laboratory class.
	 */
	protected String laboratoryTime;
	
	/**
	 * The schedule(time) for the lecture class.
	 */
	protected String lectureTime;
	
	/**
	 * The schedule(time) for the recitation class.
	 */
	protected String recitationTime;
	
	/**
	 * The room where the laboratory class is/will be held.
	 */
	protected String laboratoryRoom;
	
	/**
	 * The room where the lecture class is/will be held.
	 */
	protected String lectureRoom;
	
	/**
	 * The room where the recitation class is/will be held.
	 */
	protected String recitationRoom;
	
	/**
	 * The list of instructor/s for the laboratory class.
	 */
	protected List<IInstructor> laboratoryInstructor;
	
	/**
	 * The list of instructor/s for the lecture class.
	 */
	protected List<IInstructor> lectureInstructor;
	
	/**
	 * The list of instructor/s for the recitation class.
	 */
	protected List<IInstructor> recitationInstructor;
	
	/**
	 * <code>boolean</code> flag f
	 */
	protected boolean isTeamTeach;
	
	/**
	 * The total number of hours of the laboratory class per week.
	 */
	protected int laboratoryHours;
	
	/**
	 * The total number of hours of the lecture class per week.
	 */
	protected int lectureHours;
	
	/**
	 * The total number of hours of the recitation class per week.
	 */
	protected int recitationHours;
	
	@Override
	public String getCourseCode() {
		return courseCode;
	}

	@Override
	public void setCourseCode(String courseCode) {
		this.courseCode = courseCode;
	}

	@Override
	public String getName() {
		return name;
	}

	@Override
	public void setName(String name) {
		this.name = name;
	}

	@Override
	public int getAcademicYear() {
		return academicYear;
	}

	@Override
	public void setAcademicYear(int academicYear) {
		this.academicYear = academicYear;
	}

	@Override
	public int getSemester() {
		return semester;
	}

	@Override
	public void setSemester(int semester) {
		this.semester = semester;
	}

	@Override
	public int getStudentCount() {
		return studentCount;
	}

	@Override
	public void setStudentCount(int studentCount) {
		this.studentCount = studentCount;
	}

	@Override
	public String getLaboratoryDay() {
		return laboratoryDay;
	}

	@Override
	public void setLaboratoryDay(String laboratoryDay) {
		this.laboratoryDay = laboratoryDay;
	}

	@Override
	public String getLectureDay() {
		return lectureDay;
	}

	@Override
	public void setLectureDay(String lectureDay) {
		this.lectureDay = lectureDay;
	}

	@Override
	public String getRecitationDay() {
		return recitationDay;
	}

	@Override
	public void setRecitationDay(String recitationDay) {
		this.recitationDay = recitationDay;
	}

	@Override
	public String getLaboratoryTime() {
		return laboratoryTime;
	}

	@Override
	public void setLaboratoryTime(String laboratoryTime) {
		this.laboratoryTime = laboratoryTime;
	}

	@Override
	public String getLectureTime() {
		return lectureTime;
	}

	@Override
	public void setLectureTime(String lectureTime) {
		this.lectureTime = lectureTime;
	}

	@Override
	public String getRecitationTime() {
		return recitationTime;
	}

	@Override
	public void setRecitationTime(String recitationTime) {
		this.recitationTime = recitationTime;
	}

	@Override
	public String getLaboratoryRoom() {
		return laboratoryRoom;
	}

	@Override
	public void setLaboratoryRoom(String laboratoryRoom) {
		this.laboratoryRoom = laboratoryRoom;
	}

	@Override
	public String getLectureRoom() {
		return lectureRoom;
	}

	@Override
	public void setLectureRoom(String lectureRoom) {
		this.lectureRoom = lectureRoom;
	}

	@Override
	public String getRecitationRoom() {
		return recitationRoom;
	}

	@Override
	public void setRecitationRoom(String recitationRoom) {
		this.recitationRoom = recitationRoom;
	}

	@Override
	public List<IInstructor> getLaboratoryInstructor() {
		return laboratoryInstructor;
	}

	@Override
	public void setLaboratoryInstructor(List<IInstructor> laboratoryInstructor) {
		this.laboratoryInstructor = laboratoryInstructor;
	}

	@Override
	public List<IInstructor> getLectureInstructor() {
		return lectureInstructor;
	}

	@Override
	public void setLectureInstructor(List<IInstructor> lectureInstructor) {
		this.lectureInstructor = lectureInstructor;
	}

	@Override
	public List<IInstructor> getRecitationInstructor() {
		return recitationInstructor;
	}

	@Override
	public void setRecitationInstructor(List<IInstructor> recitationInstructor) {
		this.recitationInstructor = recitationInstructor;
	}

	@Override
	public boolean isTeamTeach() {
		return isTeamTeach;
	}

	@Override
	public void setTeamTeach(boolean isTeamTeach) {
		this.isTeamTeach = isTeamTeach;
	}

	@Override
	public int getLaboratoryHours() {
		return laboratoryHours;
	}

	@Override
	public void setLaboratoryHours(int laboratoryHours) {
		this.laboratoryHours = laboratoryHours;
	}

	@Override
	public int getLectureHours() {
		return lectureHours;
	}

	@Override
	public void setLectureHours(int lectureHours) {
		this.lectureHours = lectureHours;
	}

	@Override
	public int getRecitationHours() {
		return recitationHours;
	}

	@Override
	public void setRecitationHours(int recitationHours) {
		this.recitationHours = recitationHours;
	}
	
}

